package idea.innovacion.factory;

import idea.innovacion.interfaces.IIdeaAsesoriaDAO;
import idea.innovacion.interfaces.IIdeaDAO;
import idea.innovacion.interfaces.IIdeaDiscusionDAO;
import idea.innovacion.interfaces.IIdeaUsuarioDAO;
import idea.innovacion.interfaces.IIdeaVotacionDAO;
import idea.innovacion.interfaces.IPerfilDAO;
import idea.innovacion.interfaces.IRolDAO;
import idea.innovacion.interfaces.IUsuarioDAO;

public abstract class DAOFactory {

	public static final int MySql = 1;
	public final int PostgreSql = 1;
	
	public abstract IIdeaDAO getIdeaDAO();
	public abstract IIdeaAsesoriaDAO getIdeaAsesoriaDAO();
	public abstract IIdeaDiscusionDAO getIdeaDiscusionDAO();
	public abstract IIdeaVotacionDAO getIdeaVotacionDAO();
	public abstract IIdeaUsuarioDAO getIdeaUsuarioDAO();
	public abstract IRolDAO getRolDAO();
	public abstract IPerfilDAO getIPerfilDAO();
	
	
	public static DAOFactory getDAOFactory(int whichFactory){
		
		switch (whichFactory) {
		case MySql:
			return new MysqlDAOFactory();
		//case PostgreSql:
			//return new PostgreSqlDAOFactory();
		default:
			return null;
		}
	}
	
}
